home *** CD-ROM | disk | FTP | other *** search
- Brief instructions for building flex 2.5.x for VMS:
-
- 0) if you have either MMS (from Digital) or MMK (freeware) for use
- as a `make' utility, follow the directions in steps #1 through #5 below.
- If not, execute
- @BUILD.COM xxxC
- where "xxxC" is either "VAXC" or "DECC" or "GNUC", and then skip to
- step #5.
-
- 1) set default to the source directory (not the [.MISC.VMS] subdirectory
- where this file is located).
-
- 2) COPY [.MISC.VMS]DESCRIP.MMS []*.*
- (Recursive invocations of `make' for the `bigcheck' test assume that the
- makefile will be found as descrip.mms in the current directory.)
-
- To build with VAX C for VAX/VMS:
- 3) MMS /MACRO=("VAXC=1") FLEX.EXE
- (The /macro qualifier is optional in this case.)
-
- To build with GNU C for VAX/VMS:
- 2.5) possibly edit descrip.mms to uncomment `SET COMMAND' for GCCINIT,
- depending on local site configuration
- 3) MMS /MACRO=("GNUC=1") FLEX.EXE
-
- To build with DEC C for either VAX/VMS or Alpha/VMS:
- 3) MMS /MACRO=("DECC=1") FLEX.EXE
- (Expect one or two informational messages from the compiler about
- implicitly declared functions.)
-
- Minimal testing of the resulting program:
- 4) MMS CHECK
- (If `diff' reports no warnings, the test has succeeded.)
-
- More thorough testing:
- 4.5) MMS /MACRO=("xxxC=1") BIGCHECK ! "xxxC=1" as in step #3 above
- (If using an older version of MMK rather than MMS, this might fail when
- `make' is invoked recursively due to excessive BYTLM usage by MMK.)
-
- Installation (the VMS makefile does not support an `install' target;
- you'll need to do this part manually):
- 5) copy flex.exe, flex.doc, flex.skl, flexlib.olb, and FlexLexer.h to
- location(s) appropriate for your site. To use flex, define a "foreign"
- command by making a DCL symbol whose value begins with a dollar sign
- immediately followed by the filename for flex.exe, as in
- $ flex :== $local_tools:flex.exe
- where `local_tools:' is the logical name pointing to flex.exe's location.
- This symbol will ordinarily be a candidate for your login.com. When
- invoking flex, upper- or mixed-case command line options must be enclosed
- in quotes. For example,
- $ flex "-Pxyz" "-L" -t mylexer.l > mylexer.c
- (use prefix "xyz" instead of "yy", suppress `#line' compiler directives
- in the output, write the output to `stdout', process file mylexer.l,
- and capture `stdout' in file mylexer.c). As illustrated here, this VMS
- version of flex supports emulation of command line I/O redirection used
- by Unix shells.
-
- flex.exe -- the executable image for the flex program;
- flex.doc -- documentation, the "man page" describing flex (flex.1
- processed with `nroff -man' followed by `col -b');
- flex.skl -- a text file containing flex's default skeleton;
- with this version of flex, it is for reference only;
- flex.exe does not need to know where to find it;
- flexlib.olb -- an object library containing some support routines;
- you might need to link your generated lexer against
- it, depending on how your program is designed;
- flex.exe does not access it; it corresponds to
- `libfl.a' under Unix;
- FlexLexer.h -- header file used for C++ class-based lexers; not
- needed for ordinary C lexers.
-
- Notes:
- This VMS port of flex supports only the original Unix command line
- interface, not the native DCL interface which was available for flex 2.3.
-
- build.com -- DCL command procedure as alternative to descrip.mms;
- descrip.mms -- 2.5.x makefile for use with MMS or MMK (see step #1);
- mkskel.tpu -- TPU program used to make skel.c from flex.skl for full
- build from scratch; performs same function as mkskel.sh;
- vms-conf.h -- pre-configured `conf.in', copied to [-.-]config.h;
- vms-code.c -- VMS-specific support code, copied to [-.-]vms-code.c;
- README.VMS -- this file
-
-